create Table usuarios
(	id_usuario int identity(1,1),
	nombre varchar(30),
	Constraint pk_usuarios Primary Key (id_usuario)
)
	
GO	

Create Table Casillas_correo 
(
	id_casilla smallint,
	id_usuario int,
	casilla varchar(30),
	contrasena varchar(10),
	Constraint pk_Casillas_Correo Primary Key (id_casilla),
	Constraint Pertenece_a_usuarios Foreign Key (Id_usuario)
	references usuarios (id_usuario)
)
	
GO


Create Table oficinas_correo
(
	id_oficina smallint,
	oficina varchar(30),
	Constraint pk_oficinas_correo Primary Key (id_oficina)
)
			
GO

Create Table confianza
(
	id_oficina1 smallint,
	id_oficina2 smallint,
	habilitado bit,
	Constraint igual_a_oficina1 Foreign Key (id_oficina1)
	references oficinas_correo (id_oficina),
	Constraint igual_a_oficina2 Foreign Key (id_oficina2)
	references oficinas_correo (id_oficina)
)
GO

Create Table Casillas_oficina
(
	id_casilla smallint,
	id_oficina smallint,
	Constraint pk_Casillas_oficina Primary Key (id_casilla,id_oficina),
	Constraint Pertenece_a_correo Foreign Key (id_casilla)
	references casillas_correo (id_casilla),
	Constraint Pertenece_a_oficina2 Foreign Key (id_oficina)
	references oficinas_correo (id_oficina)
)
GO


--drop table mensajes

Create Table mensajes
(	id_mensaje smallint,
	id_casilla_origen smallint,
	id_casilla_destino smallint,
	Asunto varchar (50),
	texto varchar (1000),
	fecha datetime,
	estado varchar(15),
	prioridad varchar(15),
	origen_borrado bit default 'true',
	destino_borrado bit default 'true',
	Constraint pk_mensajes Primary Key (id_mensaje),
	Constraint  fk_casilla_Origen Foreign Key (id_casilla_origen) references Casillas_correo(id_casilla),
	Constraint  fk_casilla_Destino Foreign Key (id_casilla_destino) references Casillas_correo(Id_Casilla))
GO


--------------




	



